import { observe } from "./observe/index.js";
export function initState(vm) {
  const opts = vm.$options;
  if (opts.props) {
      initProps(vm);
  }
  if(opts.methods) {
    initMethods(vm)
  }
  if(opts.data) {
    initData(vm)
  }
  if(opts.computed) {
    initComputed(vm)
  }
  if(opts.watch) {
    initWatch(vm)
  }
}
function initProps(vm) {}
function initMethods(vm) {}
function initData(vm) {
  let data = vm.$options.data;
  data =  vm._data = typeof data === 'function' ? data.call(vm) : data;
  // 对象劫持 用户改变数组，希望得到通知 => 更新视图
  // 数据变化驱动数据变化
  // Object.defineProperty()
  observe(data) // 响应式原理
}
function initComputed(vm) {}
function initWatch(vm) {}